#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <unordered_map>
#include <ranges>


#include <iostream>
#include <string.h>
using namespace std;


vector<int> dp(5005, 0);
vector<vector<int>> dp2(5005, vector<int>(5005));
int fun(string& str, int n, int k) {
    for (int i = 3; i <= n; i++) {
        dp[i] = (str[i - 3] != 'o') + (str[i - 2] != 'v') + (str[i - 1] != 'o');
        dp2[i][dp[i]] = 1;
    }
    for (int i = 3; i <= n; i++) {
        for (int j = 0; j <= k; j++) {
            // dp2[i][j] = max(dp2[i][j], dp2[i - 1][j]);
            // dp2[i][j] = max(dp2[i][j], dp2[i][j - 1]);
            // // if(i > 3 && j > dp[i])
            // dp2[i][j] = max(dp2[i][j], dp2[i - 3][j - dp[i]] + 1);
            // cout << dp2[i][j] << ' ';
            
            dp2[i][j] = max(dp2[i - 1][j],  j == 0 ? 0 : dp2[i][j - 1]);
            dp2[i][j] = max(dp2[i][j],j < dp[i] ? 0 : dp2[i - 3][j - dp[i]] + 1);

        }
        // cout << endl;
    }
    return dp2[n][k];
}


int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    int t;
    cin >> t;
    int n, k;
    string str;
    while (t--) {
        cin >> n >> k;
        cin >> str;
        cout << fun(str, n, k) << endl;
    }
}